原始题目:剑指 Offer 58 - I. 翻转单词顺序 (opens new window)

解题思路:

可以将原数组通过空格分割成字符串数组,根据题意可以知道,需要将字符串数组后面的元素移到前面去。

代码:

public String reverseWords(String s) {
    String[] ss = s.trim().split(" ");
    StringBuilder ans = new StringBuilder();
    for (int i = ss.length - 1; i >= 0; i--) {
        if ("".equals(ss[i])) {
            continue;
        }
        ans.append(ss[i]).append(" ");
    }
    return ans.toString().trim();
}
1
2
3
4
5
6
7
8
9
10
11

复杂度分析

  • 时间复杂度O(N)O(N):总体为线性时间复杂度。
    • split() 方法:O(N)O(N)
  • 空间复杂度O(N)O(N):字符串数组占线性大小的额外空间。
上次更新: 2023/10/15